﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QL_LichCT.BusinessLayer;
using QL_LichCT.Utilities;

namespace QL_LichCT.PresentationLayer
{
    public partial class FrmXemLichBan : Form
    {
        public FrmXemLichBan()
        {
            InitializeComponent();
        }

        public void Load_cmbBoMon()
        {
            cmbBoMon.DataSource = BOMONBLL.GetList();
            cmbBoMon.DisplayMember = "tenbm";
            cmbBoMon.ValueMember = "mabm";
        }

        public void Load_cmbGiangVien()
        {
            string mabm = '\''+ cmbBoMon.SelectedValue.ToString() +'\'';
            cmbGiangVien.DataSource = GIANGVIENBLL.GetListByCoLumn("mabm", mabm);
            cmbGiangVien.DisplayMember = "tencb";
            cmbGiangVien.ValueMember = "macb";
        }

        protected void Load_ThongTinCN()
        {
            object magv = '\''+ cmbGiangVien.SelectedValue.ToString() +'\'';
            object macv = (object)('\'' + GIANGVIENBLL.GetColumnByTC("macv", "macb", magv).ToString() + '\'');
            object mabm = '\'' + cmbBoMon.SelectedValue.ToString() + '\'';

            
            txtMacb.Text = GIANGVIENBLL.GetColumnByTC("macb", "macb", magv).ToString();
            txtTencb.Text = GIANGVIENBLL.GetColumnByTC("tencb", "macb", magv).ToString();
            tctSdtcb.Text = GIANGVIENBLL.GetColumnByTC("sdt", "macb", magv).ToString();
            txtCvcb.Text = CHUCVUBLL.GetColumnByTC("tencv", "macv", macv).ToString();
            txtBmcb.Text = BOMONBLL.GetColumnByTC("tenbm", "mabm", mabm).ToString();
        }

        private void Load_LichLT()
        {
            dgvXemLichBan.DataSource = View_CoLichLTBLL.GetListByCB(cmbGiangVien.SelectedValue.ToString());

            //Định dạng hiển thị cho các cột trong lưới
            dgvXemLichBan.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 0, "Thứ", true, 50, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 1, "Mã môn", true, 85, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 2, "Tên môn", true, 200, false);

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 3, "Mã lớp", true, 85, false);

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 4, "Sỉ số", true, 75, false);
            dgvXemLichBan.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 5, "Tiết bắt đầu", true, 110, false);
            dgvXemLichBan.Columns[5].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 6, "Số tiết", true, 75, false);
            dgvXemLichBan.Columns[6].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 7, "Phòng", true, 70, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 8, "Tuần bắt đầu", true, 120, false);
            dgvXemLichBan.Columns[8].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 9, "Tuần kết thúc", true, 120, false);
            dgvXemLichBan.Columns[9].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
        }

        private void Load_LichTH()
        {
            dgvXemLichBan.DataSource = View_CoLichTHBLL.GetListByCB(cmbGiangVien.SelectedValue.ToString());

            //Định dạng hiển thị cho các cột trong lưới
            dgvXemLichBan.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 0, "Thứ", true, 50, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 1, "Mã môn", true, 85, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 2, "Tên môn", true, 200, false);

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 3, "Mã lớp", true, 85, false);

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 4, "Sỉ số", true, 75, false);
            dgvXemLichBan.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 5, "Buổi", true, 50, false);
           
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 6, "Phòng", true, 70, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 7, "Tuần bắt đầu", true, 120, false);
            dgvXemLichBan.Columns[7].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 8, "Tuần kết thúc", true, 120, false);
            dgvXemLichBan.Columns[8].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
        }

        private void Load_LichTC()
        {
            dgvXemLichBan.DataSource = View_CoLichTCBLL.GetListByCB(cmbGiangVien.SelectedValue.ToString());

            //Định dạng hiển thị cho các cột trong lưới
  
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 0, "Tĩnh", true, 150, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 1, "Tên môn", true, 200, false);

           
           
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 2, "Tuần bắt đầu", true, 120, false);
            dgvXemLichBan.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 3, "Tuần kết thúc", true, 120, false);
            dgvXemLichBan.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            Methods.FormatDataGridViewColumn(dgvXemLichBan, 4, "Buổi-Tuần", true, 125, false);
        }

        private void Load_LichCT()
        {
            dgvXemLichBan.DataSource = View_CoLichCTBLL.GetListByCB(cmbGiangVien.SelectedValue.ToString());

            //Định dạng hiển thị cho các cột trong lưới
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 0, "Tĩnh", true, 150, false);
           
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 1, "Ngày bắt đầu", true, 120, false);
            dgvXemLichBan.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 2, "Ngày kết thúc", true, 120, false);
            dgvXemLichBan.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
        }

        private void Load_LichHop()
        {
            dgvXemLichBan.DataSource = View_CoLichHopBLL.GetListByCB(cmbGiangVien.SelectedValue.ToString());

            //Định dạng hiển thị cho các cột trong lưới
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 0, "Mã cuộc hợp", true, 150, false);
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 1, "Ngày-Giờ", true, 200, false);



            Methods.FormatDataGridViewColumn(dgvXemLichBan, 2, "Sí số", true, 120, false);
            dgvXemLichBan.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            Methods.FormatDataGridViewColumn(dgvXemLichBan, 3, "Nội dung", true, 120, false);

        }

        private void cmbBoMon_SelectedIndexChanged(object sender, EventArgs e)
        {
            Load_cmbGiangVien();
        }

        private void FrmXemLichBan_Load(object sender, EventArgs e)
        {
            Load_cmbBoMon();
            Load_cmbGiangVien();
            radioLT.Checked = true;
        }

        private void cmbGiangVien_SelectedIndexChanged(object sender, EventArgs e)
        {
          //  string magv = cmbGiangVien.SelectedValue.ToString();
           
            
        }

        private void btnXemLichBan_Click(object sender, EventArgs e)
        {
            Load_ThongTinCN();
            if (radioLT.Checked)
                Load_LichLT();
            else if (radioTH.Checked)
                Load_LichTH();
            else if (radioTC.Checked)
                Load_LichTC();
            else if (radioCT.Checked)
                Load_LichCT();
            else if (radioHop.Checked)
                Load_LichHop();

        }
    }
}
